#include<malloc.h>
#include<iostream>
using namespace std;

// 1.缺省参数
 // 概念 ：函数声明时，形参有默认值，调用函数时可以不用传递实参，此时形参使用默认值
 // 语法：返回值类型 函数名(参数=默认值){函数体}
 // 注意：1.如果函数声明和定义都有缺省参数，以定义为准
 //      2.如果函数声明和定义都有缺省参数，且声明和定义的缺省参数不一致，编译报错
 //      3.缺省参数只能放在形参列表的最后面
 //      4.缺省参数不能在函数声明和定义中同时出现
 //作用：简化函数调用，减少重载函数的个数
int sum(int a,int b,int c=10)
{
    cout<<"int"<<endl;
    return a+b+c;
}

double sum(double a,double b,double c=10.0)
{
    cout<<"double"<<endl;
    return a+b+c;
}

float sum(float a,float b,float c=10.0)
{
    cout<<"float"<<endl;
    return a+b+c;
}
int main(int argc, char const *argv[])
{
    cout<<sum(1,2)<<endl;
    cout<<sum(1.1,2.2)<<endl;
    cout<<sum(1.1f,2.2f,3.3f)<<endl;
    return 0;
}
